//package com.xukehong.demo.thread;
//
//import com.xukehong.demo.entity.TreeNode;
//import org.junit.Test;
//
//import java.util.concurrent.CountDownLatch;
//import java.util.concurrent.LinkedBlockingDeque;
//import java.util.concurrent.ThreadPoolExecutor;
//import java.util.concurrent.TimeUnit;
//
///**
// * @author xkh
// * 2020/7/31
// */
//public class ThreadTest1 {
//
//
//    @Test
//    public void test() {
//        //CountDownLatch 计数
//        CountDownLatch doneSignal = new CountDownLatch(1000);
//        //创建线程池来存放线程，以防考生太多，创建太多线程，占用过多资源
//        ThreadPoolExecutor executor = new ThreadPoolExecutor(50, 150, 60000, TimeUnit.MILLISECONDS, new LinkedBlockingDeque<>());
//
//
//    }
//
//    int z = 1;
//    @Test
//    public void tree() {
//        TreeNode treeNode = new TreeNode(10);
//        TreeNode treeNode1 = new TreeNode(5, 0);
//        TreeNode treeNode2 = new TreeNode(11, 1);
//        TreeNode[] i = {treeNode1, treeNode2};
//        treeNode.setChildren(i);
//
//        TreeNode treeNode3 = new TreeNode(4, 0);
//        TreeNode treeNode4 = new TreeNode(6, 1);
//        TreeNode[] b = {treeNode3, treeNode4};
//        treeNode1.setChildren(b);
//
//
//        String space = getSpace(50);
//        System.out.println("初始树" + treeNode);
//        //初始化第0层
//        System.out.print(space + treeNode.getId());
//        if(treeNode.getChildren()[0] != null){
//            forTreeNewL(treeNode.getChildren()[0], space, z);
//        }
//        if(treeNode.getChildren()[1] != null){
//            forTreeNewR(treeNode.getChildren()[1], space, z);
//        }
//    }
//
//
//
//    private void forTreeNewL(TreeNode treeNode, String space, int z) {
//        if(treeNode != null){
//            for(int i = 0; i < treeNode.length; i++){
//                //左
//                if( treeNode[i].getLr() == 0){
//                    System.out.print(space.substring(0,space.length()-z*2) + treeNode[i].getId()+getNo(z));
//                    forTreeNew(treeNode[i].getChildren(),space,z);
//                }
//            }
//            z++;
//        }
//    }
//    private void forTreeNewR(TreeNode treeNode, String space, int z) {
//        if(treeNode != null){
//            for(int i = 0; i < treeNode.length; i++){
//                //右
//                if( treeNode[i].getLr() == 1){
//                    System.out.print(getSpace(z*2)+"  "+treeNode[i].getId()+getNo(z));
//                    forTreeNew(treeNode[i].getChildren(),space,z);
//                }
//            }
//            z++;
//        }
//    }
//
//
//
//
//    //制作空格符
//    private String getSpace(Integer spaceNo) {
//        //不考虑线程安全
//        StringBuilder space = new StringBuilder();
//        for (int i = 0; i < spaceNo; i++) {
//            space.append(" ");
//        }
//        return space.toString();
//    }
//
//    //制作换行符
//    private String getNo(Integer no) {
//        //不考虑线程安全
//        StringBuilder n = new StringBuilder();
//        for (int i = 0; i < no; i++) {
//            n.append("\n");
//        }
//        return n.toString();
//    }
//
//
//    private void forTree(TreeNode treeNode, String one, int z) {
//        if (treeNode.getLr() == null) {
//            System.out.println(one + treeNode.getId());
//            if (treeNode.getChildren() != null) {
//                z++;
//                for (int i = 0; i < treeNode.getChildren().length; i++) {
//                    forTree(treeNode.getChildren()[i], one, z);
//                }
//                return;
//            }
//        }
//        //左
//        if (treeNode.getLr() == 0) {
//            System.out.print(one.substring(0, one.length() - z * 2) + treeNode.getId());
//            if (treeNode.getChildren() != null) {
//                z++;
//                for (int i = 0; i < treeNode.getChildren().length; i++) {
//                    forTree(treeNode.getChildren()[i], one, z);
//                }
//            }
//        }
//        //右
//        if (treeNode.getLr() == 1) {
//            String two = "  ";
//            for (int i = 0; i < 2 * z; i++) {
//                two += " ";
//            }
//            System.out.print(two + treeNode.getId());
//            if (treeNode.getChildren() != null) {
//                z++;
//                for (int i = 0; i < treeNode.getChildren().length; i++) {
//                    forTree(treeNode.getChildren()[i], one, z);
//                }
//            }
//        }
//
//    }
//
//
//}
